package org.snail.attendence.bean;


import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.snail.config.CustomDateSerializer;
import org.snail.excel.annotation.ExcelBean;
import org.snail.excel.annotation.ExcelColumn;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @function 考情异常信息
 */
@Data
@Document(collection = "abnormalAttendanceList")
@ExcelBean
public class AbnormalAttendanceDTO implements Serializable{
    @ExcelColumn(name = "department", position=0, columnName = "部门")
    private String department;     //部门
    @ExcelColumn(name = "employeeName", position=1, columnName = "姓名")
    private String employeeName;//姓名
    @ExcelColumn(name = "aliNumber", position=2, columnName = "外包工号")
    private String aliNumber;//外包工号
    @ExcelColumn(name = "dateStr", position=3, columnName = "日期")
    private String dateStr;//日期
    @ExcelColumn(name = "punchTime1", position=4, columnName = "上班打卡时间")
    private String punchTime1;//上班打卡时间
    @ExcelColumn(name = "punchTime2", position=5, columnName = "下班打卡时间")
    private String punchTime2;//下班打卡时间
    @ExcelColumn(name = "attendenceMin", position=6, columnName = "工作时长(min)")
    private String attendenceMin;         //工作时长，以九小时为主
    @ExcelColumn(name = "absentMin", position=7, columnName = "缺勤值(min)")
    private Double absentMin;         //缺勤小时数
//    @ExcelColumn(name = "abnormalityOfAttendance", position=8, columnName = "异常原因 1:上班忘记打卡2:下班忘记打卡3:严重迟到4:工作时长小于8小时5:调休+上班时间小于8小时12:上下班均未打卡13:请假后上下班缺卡")
    private int abnormalityOfAttendance;  //异常考勤信息:1忘记打卡,2.工作时长小于9小时,0.取消,将固定数据转成中文
    @ExcelColumn(name = "approval", position=9, columnName = "管理审批")
    private String approval;       //管理审批 @ExcelColumn(name = "approval", position=9, columnName = "管理审批")
    @ExcelColumn(name = "groupName", position=10, columnName = "钉钉群组")
    private String groupName;
    @ExcelColumn(name="abnormalityOfAttendanceDescribe",position = 11,columnName = "异常原因描述")
    private String abnormalityOfAttendanceDescribe;
    @JsonSerialize(using = CustomDateSerializer.class)
    private Date attendenceDate;
    private String hookurl;       //群组hookurl
    private Long groupId;
    private List<Long> groupIdList;
    private Integer empId;
    private String phone;
    private int isCorrect;    //是否标记为正常数据isCorrect
    private int isSend;    //是否发送
    private String errReason;    //错误原因
    private Date uploadtime;     //上传时间
    private String send;     //上传内容
    private int status;     //状态：是修改还是新增

    private List groupIds;        //群组列表的ids
    private int dbstatus;     //是否被标记为正常数据
    private int attId;               //考勤主表id
    private int state;               //做预览 0：不变  1：新增
    private String deptInfo;        //部门信息
    private int rest;               //休息日 且不加班
    private String du;               //DU
    private int isDel;
    private Date updateTime;

}
